[ENG-1851] Add Roam single-node publish action#1132
Conversation
Add a 'DG: Share current node' command-palette action, gated on isSyncEnabled(). It deterministically captures the current page's discourse node (page uid = source-local id), validates it via findDiscourseNode, and opens the existing Share Data dialog with exactly one node. The Publish-tab handoff (initialPanel: "publish") is deferred to ENG-1890, which owns Export.tsx's initialPanel union and the tab; finishing it is a one-line change to the exportRender call here. Mirrors Obsidian's publish-discourse-node command and Roam's exportCurrentPage.
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
PR size/scope checkThis PR is over our review-size guideline.
Please split this into smaller PRs unless there is a clear reason the changes need to land together. If keeping it as one PR, please add a brief justification covering:
|
…-query-results-share-dialog' into eng-1851-add-roam-single-node-share-action
|
|
|
I got a bit confused by the branch interdependent structure. Not going to ask for a reorg, but thinking forward: I think it would be good practice to separate common code, such as the (excellent) refactoring where group functions are pushed to database in a separate PR, which both 1851 and 1890 could then build on for ux-specific adjustments. (OTH it's easier to test when logic and ux are together, but in this case we're mostly doing refactorings, and some code ported from obsidian.) |
|
Visual issue: FLO Create DG node Roam interface I think the duplicates should be on a separate line. |
|
And I see now 1851 is stacked on 1890. You made that explicit. Would be more legible with rebase than merge, but that's a nit. |
maparent
left a comment
There was a problem hiding this comment.
Existing code logic lgtm.
Nit: As commented in linear, the "Possible duplicates" button probably deserves a new line.
Scoping: The obsidian button tells you how many groups was the node published to. Is that something we want in Roam? Maybe scope creep, but I suggest we create a separate triage task for that functionality.
|
@maparent created a new task to remove this feature because we don't need it. |
maparent
left a comment
There was a problem hiding this comment.
Created FEE-845 for the publish button status, moving it out of scope.
c80b7bd
into
eng-1890-add-publish-tab-to-roam-query-results-share-dialog
https://www.loom.com/share/7c761a98168a41f1a58dd046b593bd18
What changed
ENG-1851 is now stacked on ENG-1890 and wires Roam single-node publishing into the existing Share Data dialog.
DG: Share current nodefor the current user-backed discourse node.Publishbutton on discourse node pages.Publishtab with exactly one selected node.Publishand the discourse context overlay render side by side, while full-width panels such as Possible Duplicates remain below.Test result
Built and copied the Roam extension bundle to
/mnt/data/projects/dg-test-eng-1851with Supabase env loaded.Runtime test:
[[NOD]] - test page 3via the page-titlePublishbutton.WIsbIYJIA.1a752508-6281-4270-a5ef-3a23cbfc047c.105833.Supabase verification:
ResourceAccessexists for selected node UIDWIsbIYJIAand group1a752508-6281-4270-a5ef-3a23cbfc047c.SpaceAccess.permissions = partialexists for the same group and space.lwEYjIASO(NODE 1).This proves the actual publish path rather than duplicate-node/vector-search behavior, because duplicate detection may use synced concepts/content/embeddings but does not create
ResourceAccessorSpaceAccessgroup grants.Scope note
This validates ENG-1851's action/wiring and group-scoped publish grant behavior. Full cross-user discovery/consumption remains ENG-1854 validation territory.